Nesta página você pode obter uma análise detalhada de uma palavra ou frase, produzida usando a melhor tecnologia de inteligência artificial até o momento:
E/S mapeada em memória (em inglês, memory-mapped I/O) ou E/S mapeada em portas (em inglês, port-mapped I/O ou port I/O) são dois métodos complementares de executar entrada/saída entre a CPU e os dispositivos periféricos no computador. Outro método, não discutido nesse artigo, é usar um processador dedicado de E/S (comumente conhecido como canal em computadores mainframe) que executa suas próprias instruções.
O método de mapeamento de E/S em memória utiliza a via de endereços para endereçar tanto a memória quanto os dispositivos de E/S e as instruções da CPU usadas para acessar a memória também são usadas para acessar os dispositivos. Para acomodar os dispositivos de E/S áreas do espaço endereçável da CPU devem ser reservadas para E/S. A reserva de espaço pode ser temporária (o Commodore 64 podia trocar entre seus dispositivos de E/S e a memória regular) ou permanente. Cada dispositivo de E/S monitora a via de endereçamento da CPU e responde a qualquer acesso da CPU ao espaço de endereço destinado ao dispositivo, conectando a via de dados ao registrador do hardware do dispositivo desejado.
E/S mapeada em porta utiliza uma classe especial de instruções do processador. Isto é normalmente encontrado em processadores intel , especificamente as instruções IN e OUT, que podem escrever de um a quatro bytes (outb, outw, outl) em um dispositivo de E/S. Estes dispositivos possuem um espaço de endereços separado da memória geral, implementado por um pino extra de E/S na interface da CPU ou por um barramento inteiro dedicado a entrada/saída. Por esta área de memória, dedicada a E/S, ser isolada da memória principal ela é, às vezes, chamada de E/S isolada.
O acesso direto à memória (DMA) de um dispositivo não é afetado por esses métodos de comunicação CPU-dispositivo, nem pelo mapeamento em memória. Isto porque o DMA é, por definição, algo distinto da comunicação com a CPU.
A Interrupção de Hardware é outra forma de comunicação entre a CPU e dispositivos periféricos, mas, por várias razões, é tratada separadamente: ela é iniciada pelo dispositivo, enquanto o método descrito acima é iniciado pela CPU; é unidirecional, pois os sinais de informação fluem somente do dispositivo para a CPU; cada interrupção carrega somente um bit de informação, com um significado fixo, dizendo algo como "um evento que requer atenção ocorreu num dispositivo dispositivo, nesta linha de interrupção".